package MediaEntity;
/*
 *因为media这个类没有取得文件信息的方法，所以把它和jaudiotagger包装到一起构成MediaEntity类
 */

import com.example.mediaplayer.MediaInfoHandler;
import javafx.scene.media.Media;


import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.HashMap;

public class MP3Entity extends MediaEntity{
    private HashMap info;

    public MP3Entity(String filePath){
        super();
        this.filePath=filePath;
        File file=new File(filePath);
        name=file.getName();
        try {
            this.media=new Media(file.toURI().toURL().toString());//一个media和一个mediaplayer绑定，不可更改
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

        MediaInfoHandler mediaInfoHandler = new MediaInfoHandler();
        mediaInfoHandler.handle(file);
        this.info = mediaInfoHandler.getMediaInfo();
    }
    /**歌名*/
    public String getName(){
        String s = (String) info.get("TIT2");
        return s==null?"未知歌曲":s;
    }
    /**专辑名*/
    public String getAlbum(){
        String s = (String) info.get("TALB");
        return s==null?"未知专辑":s;
    }
    /**歌手*/
    public String getArtist(){
        String s = (String) info.get("TPE1");
        return s==null?"未知歌手":s;
    }
    /**
     * 专辑封面
     * @return 返回null说明没有封面，用默认封面。
     * */
    public String getAPICPath(){
        return (String) info.get("APIC");
    }

}